package com.etooling.framework.conf;

import com.etooling.framework.filter.AdminLoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
    /**
     * 跨域配置
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {

        //对那些请求路径进行跨域处理
//        registry.addMapping("/**")
//                // 允许的请求头，默认允许所有的请求头
//                .allowedHeaders("*")
//                // 允许的方法，默认允许GET、POST、HEAD
//                .allowedMethods("*")
//                // 探测请求有效时间，单位秒
//                .maxAge(1800)
//                // 支持的域
//                .allowedOrigins("*")
//                // 是否发送cookie
//                .allowCredentials(true);

        registry.addMapping("/**")
                .allowedOriginPatterns("*") // SpringBoot2.4.0 [allowedOriginPatterns]代替[allowedOrigins]
                .allowedMethods("*")
                .allowedHeaders("*")
                .maxAge(3600)
                .allowCredentials(true);
        System.out.println("配置跨域调用成功");
    }

    @Autowired(required = false)
    private AdminLoginInterceptor adminLoginInterceptor;


    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 添加一个拦截器，拦截以/admin为前缀的url路径
        registry.addInterceptor(adminLoginInterceptor).addPathPatterns("/admin/**");
        System.out.println("添加登录拦载完成");
    }

}
